home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 1 / LSD Compendium Deluxe 1.iso / a / programming / assembly / lsdvizint.lha / ddp.s < prev    next >
Encoding:
Text File  |  1991-02-02  |  17.9 KB  |  828 lines

  1. ;************************************************************
  2. ;***   THIS INTRO WAS CODED BY POD WITH HELP FROM FANGS   ***
  3. ;***** IF YOU WANT TO SWAPP HINTS AND TIPS WITH ME THEN *****
  4. ;******* PHONE POD ON (0742) 554063 OR WRITE TO ME AT *******
  5. ;*********69 WOODSEATS RD WOODSEATS SHEFFIELD S8 OPH*********
  6. ;************************************************************
  7.  
  8.     SECTION    POD_OF_SLIPSTREAM_,CODE_C
  9.     OPT    C-
  10.     incdir  df0:,df2:
  11.     move.l  #grumpy,getto
  12.     move.l    #Screen,Store
  13.     Move.w    Store,Plne+2
  14.     move.w  store,plne1+2
  15.     Move.w    Store+2,Plne+6
  16.     move.w  store+2,plne1+6
  17.     MOVE.L    #DIFFERENCE,STORE
  18.     MOVE.W    STORE,SCRL+2
  19.     MOVE.W    STORE+2,SCRL+6
  20.     move.w  #56,d1
  21. loop:   bsr    Colour
  22.     Bsr    Cycle
  23.     dbf    d1,loop
  24.     move.w    #90,d1
  25. long    bsr    waveplace2
  26.         bsr    wavecycle
  27.         dbf    d1,long
  28.     move.l  #logo,store
  29.     lea    bitmap,a0
  30.     move.w    #4,d0
  31. planes: move.w    store,2(a0)
  32.      move.w    store+2,6(a0)
  33.      add.w    #8,a0
  34.      add.l    #4640,store
  35.      dbf    d0,planes
  36.      lea    logo+23200,a0
  37.      lea    cols+2,a1
  38.      move.w    #31,d0
  39. place:     move.w    (a0)+,(a1)
  40.      add.w    #4,a1
  41.      dbf    d0,place
  42.     MOVE.L    4,A6
  43.     LEA.L    GFxNAME,A1
  44.     CLR.L    D0
  45.     JSR    -552(A6)
  46.     MOVE.L    D0,GFXLOC
  47.     MOVE.L    GFXLOC,A6
  48.     MOVE.L    50(A6),OLDCOP
  49.     MOVE.L    #COPPER,50(A6)
  50.     MOVE.L    #$FFFF,D0
  51. COPDEL:    DBF    D0,COPDEL
  52.     MOVE.W    #%1000011111100000,$DFF096
  53.     MOVE.W    #$C000,$DFF09A
  54.     MOVE.L    #$FFFFFFFF,$DFF044
  55.     MOVE.W    #00,$DFF042
  56.     MOVE.W    #%0000100111110000,$DFF040
  57.     MOVE.W    #$4000,$DFF09A
  58.       jsr     start_muzak
  59.       JSR     STARS_ON
  60. START:    CMP.B    #$05,$DFF006
  61.     BNE.S    START
  62.     jsr     bounce
  63.     bsr     Colour
  64.     bsr     Cycle
  65.     bsr     waveplace2
  66.     bsr     wavecycle
  67.     jsr    scroll
  68.     jsr    SCROLLY
  69.     jsr     replay_muzak
  70.     btst    #6,$bfe001
  71.     beq    reset
  72.     btst    #7,$bfe001
  73.     beq    reset
  74.     btst    #10,$dff016
  75.     beq    reset
  76.     BRA.s    START
  77.  
  78. RESET:    MOVE.W    #$C000,$DFF09A
  79.     MOVE.W    #$0F,$DFF096
  80.     jsr     stop_muzak
  81.     MOVE.L    GFXLOC,A6
  82.     MOVE.L    OLDCOP,50(A6)
  83.     MOVE.L    4,A6
  84.     MOVE.L    GFXLOC,A1
  85.     JSR    -414(A6)
  86.     CLR.L    D0
  87. EX:    RTS
  88. COPPER:    DC.W    $0104,$0000
  89.     DC.W    $0108,$0000,$010A,$0000
  90.     DC.W    $0092,$0030
  91.     dc.w    $0094,$00D8
  92.     DC.W    $008E,$2C61,$0090,$2AC1
  93.     DC.W    $0120,$0000,$0122,$0000
  94.     dc.w    $0180,$0000,$0182,$0fff
  95.  
  96. sp0:    dc.w    $0120,$0000,$0122,$0000    
  97. sp1:    dc.w    $0124,$0000,$0126,$0000    
  98. sp2:    dc.w    $0128,$0000,$012a,$0000    
  99. sp3:    dc.w    $012c,$0000,$012e,$0000    
  100. sp4:    dc.w    $0130,$0000,$0132,$0000    
  101. sp5:    dc.w    $0134,$0000,$0136,$0000    
  102. sp6:    dc.w    $0138,$0000,$013a,$0000    
  103. sp7:    dc.w    $013c,$0000,$013e,$0000    
  104.     ;dc.w    $0108,0
  105.  
  106. a set $180
  107. cols:    rept    32
  108.     dc.w    a,0
  109. a set a+2     
  110.     endr
  111.     dc.w    $3101,$fffe
  112.  
  113. a set $3101
  114.         dc.w    a,$fffe
  115.     dc.w    $100,$1200,$0108,$2
  116. plne1    dc.w    $e0,0,$e2,0
  117.     dc.w    $182,$fff
  118.  
  119. a set $4009
  120.     dc.w    a,$fffe
  121. colours:rept    56
  122.     dc.w    $180,0
  123.     endr
  124. colours1:
  125.     dc.w    $0180,$0
  126.     dc.w    a+$100,$fffe,$0180,$0
  127.     dc.w    $5301,$fffe,$0100,$5200
  128. bitmap  dc.w    $00e0,$0000,$00e2,$0000
  129.     dc.w    $00e4,$0000,$00e6,$0000
  130.     dc.w    $00e8,$0000,$00ea,$0000
  131.     dc.w    $00ec,$0000,$00ee,$0000
  132.     dc.w    $00f0,$0000,$00f2,$0000
  133.     dc.w    $108,0
  134. a set $5809
  135.  
  136. wave:    rept    90
  137.     dc.w    a,$fffe,$0102,$0000
  138. a set a+$100
  139.         endr
  140.  
  141. wave1:  dc.w    a,$fffe,$0102,$0000
  142.         dc.w    a+$100,$fffe,$0102,$0000
  143.                 
  144.         dc.w    a+$200,$fffe,$100,0
  145.             
  146. colours2:rept    56
  147.     dc.w    $0180,$0
  148. a set a+4
  149.     endr
  150. colours3:
  151.     dc.w    $0180,$2
  152.     dc.w    a+$100,$fffe,$0180,$0
  153.  
  154. a set $d001
  155. shat:   dc.w    $d001,$fffe
  156.     dc.w    $100,$1200,$0108,2
  157. plne    dc.w    $e0,0,$e2,0
  158.     dc.w    $182,$2Af
  159.  
  160. a set a+$1000
  161.     dc.w    a,$fffe
  162.  
  163. a set a+$100
  164.     dc.w    $108,-82,$182,$1AF
  165. a set a+$1000
  166.     dc.w    a,$fffe
  167.     dc.w    $100,0
  168. ;A SET A+$400
  169.     DC.W    A,$FFFE,$108,2
  170.     DC.W    $100,$1200
  171.     dc.w     $0182,$02FF
  172. SCRL    DC.W    $E0,0,$E2,0
  173.     DC.W    $FFE1,$FFFE,$2801,$FFFE,$100,0
  174.     dc.w    $108,-82,$182,$444
  175.     DC.W    $FFFF,$FFFE
  176. GFXNAME:DC.B    "graphics.library",0
  177. GFXLOC:    DC.L    0
  178. OLDCOP:    DC.L    0
  179. store:  dc.l    0
  180.  
  181.     even
  182.  
  183. Blit_Wait    Btst    #14,$dff002
  184.         bne.s    Blit_Wait
  185.         Rts
  186.             
  187. Colour:        lea colourtable,a0
  188.         add.w colourptr,a0
  189.         cmp.w #$8888,(a0)
  190.         bne colour1
  191.         clr.W colourptr
  192.         bra.s colour
  193. colour1:    move.w    (a0),colours1+2
  194.         Move.w    (a0),colours2+2
  195.         add.w #2,colourptr
  196.         rts
  197.             
  198. Cycle:        jsr    Blit_Wait
  199.         move.l    #colours+4,$dff050    ;a source IM
  200.         move.l    #colours,$dff054    ;d source
  201.         move.w    #$0000,$dff064    ;a mod
  202.         move.w    #$0000,$dff066    ;d mod
  203.         move.w    #$ffff,$dff044    ;fw mask
  204.         move.w    #$ffff,$dff046    ;lw mask
  205.         move.w    #%0000100111110000,$dff040    ;con0
  206.         move.w    #%0000000000000000,$dff042    ;con1
  207.         move.w    #2*64+56,$dff058    ;size        
  208.         jsr    Blit_Wait
  209.         move.l    #colours3,$dff050    ;a source IM
  210.         move.l    #colours3+4,$dff054    ;d source
  211.         move.w    #$0000,$dff064    ;a mod
  212.         move.w    #$0000,$dff066    ;d mod
  213.         move.w    #$ffff,$dff044    ;fw mask
  214.         move.w    #$ffff,$dff046    ;lw mask
  215.         move.w    #%0000100111110000,$dff040    ;con0
  216.         move.w    #%0000000000000010,$dff042    ;con1
  217.         move.w    #2*64+57,$dff058    ;size        
  218.         jsr    Blit_Wait
  219.         JSR     STAR_MOVE    
  220.         rts
  221.          
  222. colourptr:    dc.w $0
  223.  
  224. waveplace2: lea wavy,a0
  225.          add.w waveptr2,a0
  226.          cmp.w #$8888,(a0)
  227.          bne wcolour12
  228.          clr.W waveptr2
  229.          bra.s waveplace2
  230. wcolour12:     move.w (a0),wave1+6
  231.             add.w #2,waveptr2
  232.             rts
  233.             
  234. wavecycle:    lea wave+6,a0
  235.         move.w #89,d0
  236. wavecycle1:    move.w 8(a0),(a0)
  237.         add.w #8,a0
  238.         dbf d0,wavecycle1
  239.         rts
  240.  
  241. waveptr2:    dc.w $0
  242.  
  243. colourtable: 
  244.         
  245.           dc.w $f00
  246.          dc.w $f10,$f20,$f30,$f40,$f50,$f60,$f70,$f80,$f90,$fa0,$fb0,$fc0,$fd0,$fe0,$ff0
  247.          dc.w $ef1,$df2,$cf3,$bf4,$af5,$9f6,$8f7,$7f8,$6f9,$5fa,$4fb,$3fc,$2fd,$1fe,$0ff
  248.          dc.w $0ef,$0df,$0cf,$0bf,$0af,$09f,$08f,$07f,$06f,$05f,$04f,$03f,$02f,$01f,$00f
  249.          dc.w $10e,$20d,$30c,$40b,$50a,$609,$708,$807,$906,$a05,$b04,$c03,$d02,$e01
  250.  
  251.     dc.w $8888
  252.  
  253. wavy:    dc.w    $000,$000,$000,$000,$000
  254.     dc.w    $111,$111,$111,$111
  255.     dc.w    $222,$222,$222
  256.     dc.w    $333,$333
  257.     dc.w    $444,$555
  258.     dc.w    $666,$666
  259.     dc.w    $777,$777,$777
  260.     dc.w    $888,$888,$888,$888
  261.     dc.w    $999,$999,$999,$999,$999
  262.     dc.w    $888,$888,$888,$888
  263.     dc.w    $777,$777,$777
  264.     dc.w    $666,$666
  265.     dc.w    $555,$444
  266.     dc.w    $333,$333
  267.     dc.w    $222,$222,$222
  268.     dc.w    $111,$111,$111,$111
  269.     dc.w    $8888
  270.  
  271.     include    Noise.INC
  272.  
  273.  
  274.     ****************************************
  275.     *    Multi-purpose Stafield Creator    *
  276.     *                       *    
  277.     *        Written by Andy Clark         *    
  278.     *                       *    
  279.     *           3rd August 1990           *    
  280.     *                       *    
  281.     *      Strictly for use by anyone      *    
  282.     ****************************************
  283.  
  284.     ****************************************
  285.     *     Use the four equates for fx      *    
  286.     ****************************************
  287.     
  288. star_top    equ    $4c        ;first line
  289. star_height    equ    90        ;number of lines
  290. density        equ    1        ;density of stars (0-3)
  291. direction    equ    0        ;0-right 1-left
  292.  
  293.     ****************************************
  294.     *     Use the four equates for fx      *    
  295.     ****************************************
  296.  
  297.  
  298. den:    dc.b    3,7,15,31
  299.  
  300. numst0:    dc.w    0
  301. numst1:    dc.w    0
  302. numst2:    dc.w    0
  303.  
  304. sth0:    dc.l    7    ;height
  305. sth1:    dc.l    5
  306. sth2:    dc.l    3
  307.  
  308. stary:    dc.w    0    ;current y position
  309. stardat:dc.l    0    ;data for display
  310. starcnt:dc.l    0    ;number of lines used
  311. msb:    dc.w    0    ;gmt check
  312. dens:    dc.l    0    ;density store
  313. starh:    dc.l    0    ;store height
  314.  
  315.     ** Call this once to set up stars
  316.     ** Attention: You must have sp0-2 defined on copper list    
  317.  
  318. Stars_on:
  319.     lea    den,a0
  320.     move.l    #density,d0
  321.     move.b    (a0,d0),dens+3
  322.  
  323.     lea    st0,a0
  324.     move.l    #star0,d0
  325.     move.l    sth0,d1
  326.     jsr    setstars
  327.     lea    st1,a0
  328.     move.l    #star1,d0
  329.     move.l    sth1,d1
  330.     jsr    setstars
  331.     lea    st2,a0
  332.     move.l    sth2,d1
  333.     move.l    #star2,d0
  334.     jsr    setstars
  335.  
  336.     move.l    #st0,d0
  337.     move.w    d0,sp0+6
  338.     swap    d0
  339.     move.w    d0,sp0+2
  340.  
  341.     move.l    #st1,d0
  342.     move.w    d0,sp1+6
  343.     swap    d0
  344.     move.w    d0,sp1+2
  345.  
  346.     move.l    #st2,d0
  347.     move.w    d0,sp2+6
  348.     swap    d0
  349.     move.w    d0,sp2+2
  350.     rts
  351.  
  352. Setstars:
  353.     move.b    #0,msb
  354.     move.b    #star_top,stary
  355.     move.l    d0,stardat
  356.     move.l    d1,starh
  357.     move.l    #0,starcnt
  358.  
  359. .lp2:    jsr    random
  360.     and.l     dens,d1
  361.     add.b    d1,stary    ;updt stary position
  362.     bcc    .lp3        ;over gmt?
  363.     move.b    #1,msb
  364. .lp3:    add.l    d1,starcnt    ;inc count
  365.     move.l    #star_height,d0
  366.     cmp.l    starcnt,d0
  367.     blt    .lp        ;reached end
  368.     move.b    stary,(a0)    ;set ystart
  369.     bclr.b    #2,3(a0)
  370.     tst.b    msb        ;check over
  371.     beq    .lp5
  372.     bset.b    #2,3(a0)
  373. .lp5:    move.b    stary,2(a0)    
  374.     move.b    starh+3,d1
  375.     add.b    d1,2(a0)    ;set ystop
  376.     bcc    .lp4
  377.     move.b    #1,msb
  378. .lp4:    bclr.b    #1,3(a0)
  379.     tst.b    msb        ;check over
  380.     beq    .lp6
  381.     bset.b    #1,3(a0)
  382. .lp6:    jsr    random
  383.     move.b    d1,1(a0)    ;set xpos
  384.     add.b    #1,stary    ;updt for next y position
  385.     move.b    starh+3,d1
  386.     add.b    d1,stary
  387.     add.l    #4,a0        ;point to data
  388.     move.l    stardat,a1
  389.     move.l    starh,d1
  390.     subq.l    #1,d1
  391. .lp7:    move.l    (a1)+,(a0)+    ;put data into display
  392.     dbra    d1,.lp7
  393.     add.l    #1,starcnt    ;in count
  394.     move.l    starh,d1
  395.     add.l    d1,starcnt
  396.     move.l    #star_height,d0
  397.     cmp.l    starcnt,d0
  398.     blt    .lp        ;reached end
  399.     bra    .lp2        ;get next star
  400. .lp:    move.l    #0,(a0)
  401.     rts
  402.  
  403.     ** Call this every frame
  404.  
  405. Star_move:
  406.     lea    st0,a0
  407.     move.l    #3,d0        ;speed
  408.     move.l    sth0,d2
  409.     asl.l    #2,d2
  410.     add.l    #4,d2
  411.     jsr    stmov
  412.     lea    st1,a0
  413.     move.l    #2,d0        ;speed
  414.     move.l    sth1,d2
  415.     asl.l    #2,d2
  416.     add.l    #4,d2
  417.     jsr    stmov
  418.     lea    st2,a0
  419.     move.l    #1,d0        ;speed
  420.     move.l    sth2,d2
  421.     asl.l    #2,d2
  422.     add.l    #4,d2
  423.     jsr    stmov
  424.     rts
  425. stmov:    move.l    #direction,d1
  426.     beq    .lp
  427.     neg.l    d0
  428. .lp    add.b    d0,1(a0)
  429.     add.l    d2,a0
  430.     tst.l    (a0)
  431.     bne     .lp
  432.     rts
  433.  
  434. random    moveq.l    #0,d1
  435.     lea    $fc0000,a6
  436.     move.l    framecount,d5
  437.     move.b    (a6,d5),d1
  438.     and.l    #$07,d5
  439.     lea    rseed,a6
  440.     move.b    (a6,d5),d5
  441.     eor.b    d5,d1
  442.     add.l    d1,framecount
  443.     cmp.l    #2000,framecount
  444.     blt    noz2
  445.     move.l    #0,framecount
  446.     and.l    #7,d5
  447.     move.b    d1,(a6,d5)
  448.     eor.l    d1,framecount
  449. noz2    rts
  450. rseed    dc.b    $94,$2f,$c7,$ea,$93,$c5,$76,$89
  451. framecount:
  452.     dc.l    0
  453.  
  454. st0:    ds.b    200*4
  455. st1:    ds.b    200*4
  456. st2:    ds.b    200*4
  457.  
  458. star0:    dc.w $3800,$3800
  459.     dc.w $4400,$6400
  460.     dc.w $A200,$D200
  461.     dc.w $8200,$A600
  462.     dc.w $8A00,$8600
  463.     dc.w $4400,$5C00
  464.     dc.w $3800,$3800
  465.  
  466. star1:    dc.w $7000,$7000
  467.     dc.w $C800,$8800
  468.     dc.w $8800,$9800
  469.     dc.w $8800,$B800
  470.     dc.w $7000,$7000
  471.  
  472. star2:    dc.w $C000,$4000
  473.     dc.w $A000,$E000
  474.     dc.w $4000,$4000
  475.  
  476.  
  477.     ****************************************
  478.     *     Bottom of Starfield Routine      *    
  479.     ****************************************
  480.  
  481. scroll:    move.l     #$DFF000,A6
  482.     MOVE.L     #SCREEN,d0
  483.     move.l     d0,d1
  484.     addq.l     #2,d1        ; a2 points to next word
  485.     move.l     d1,$50(a6)    ; srce 
  486.     move.l     d0,$54(a6)    ; Dest 
  487.     clr.w     $064(A6)        ; No modulos
  488.     clr.w     $066(A6)
  489.     move.l     #-1,$044(A6)    ; Set all masks on
  490.     clr.w     $042(A6)    ; BLTCON1 = Blitter control reg.1
  491.     MOVE.W     #%1101100111110000,$040(a6)
  492.     move.w     #16*64+22,$058(a6)
  493.     subq.b     #1,charcount
  494.     bne.s     nocharyet
  495.     move.b     #5,charcount    
  496.     move.l     textptr,a0
  497.     moveq     #0,d0
  498.     move.b     (a0)+,d0
  499.     cmpi.b     #0,(a0)
  500.     bne.s     nottextend
  501.     move.l     #texttab,a0
  502.  
  503. nottextend:
  504.     move.l     a0,textptr
  505.     bsr.s     putletter
  506.  
  507. nocharyet:
  508.     rts
  509.  
  510.  
  511. putletter:
  512.     lea     fontmap,a0
  513.     subi.b     #32,d0
  514.  
  515. rndagain:    
  516.     cmpi.b     #20,d0        
  517.     blt.s     okputchar
  518.     adda.l     #40*16,a0    ; Size of 1 line of chs
  519.     subi.b     #20,d0
  520.     bra.s     rndagain
  521.  
  522. okputchar:
  523.     rol.b    #1,d0
  524.     andi.b    #$fe,d0
  525.     add.l    a0,d0
  526.     move.l    #$DFF000,A6
  527.     move.l    #SCREEN,d1
  528.     subi.l    #2,d1
  529.     move.l    d0,$50(a6)
  530.     move.l    d1,$54(A6)
  531.     MOVE.W    #38,$064(A6)
  532.     MOVE.W    #40,$066(A6)
  533.     move.l    #-1,$044(A6)    ; Set all masks on
  534.     clr.w    $042(A6)    ; BLTCON1 = Blitter control reg.1
  535.     MOVE.W    #%0000100111110000,$040(a6)
  536.     move.w    #64*16+1,$058(a6)
  537.     RTS
  538. bitmaparea:    ds.l 1
  539. charcount:    dc.b 16
  540.         EVEN
  541. fontmap:    incbin    16x16.raw_4
  542. textptr:    dc.l texttab
  543. texttab:dc.b    ' WELCOME TO SLIPSTREAM BBS INTRO'
  544.     DC.B    ' RING THE NEW SLIPSTREAM BBS ON ENGLAND'
  545.     DC.B    '     +44 0642 300501 THE ABSOLUTE ZERO      '
  546.     DC.B    ' CREDITES FOR THIS INTRO '
  547.     DC.B    ' CODING BY POD WITH HELP FROM (FANGS) GRAPHICS BY  ?????????'
  548.     DC.B    ' FONT TAKEN FROM DEFJAM INTRO MUSIC BY ???? OF ?????'
  549.     DC.B    ' IF YOU ARE WAITING FOR THE GREETINGS YOU ARE READING THE WRONG SCROLLER'
  550.     DC.B    ' IF YOU WANT TO CONTACT SLIPSTREAM THEN WRITE TO KID VIDEO AT 45 COCERIDER RD WAITHAMSTO LONDON E17 6QX OR'
  551.     DC.B    ' POD 69 WOODSEATS RD SHEFFIELD S8 OPH OR RING (0742) 554063 '
  552.     DC.B    'ANY WAY  SEE YOU  LATER                  TEXT WARP             '
  553.     DC.B    '                                                                                       '
  554.     DC.B    0
  555.     
  556. SCREEN    DCB.B    $8c8,0
  557. music    incbin df2:mod.loader 
  558. logo:    incbin logo3.raw
  559.  
  560. colos:    dc.w    $f00
  561.     dc.w    $f10,$f20,$f30,$f40,$f50,$f60,$f70,$f80
  562.     dc.w    $f90,$fa0,$fb0,$fc0,$fd0,$fe0,$ff0
  563.     dc.w    $ef0,$df0,$cf0,$bf0,$af0,$9f0,$8f0,$7f0
  564.     dc.w    $6f0,$5f0,$4f0,$3f0,$2f0,$1f0,$0f0
  565.     dc.w    $0f1,$0f2,$0f3,$0f4,$0f5,$0f6,$0f7,$0f8
  566.     dc.w    $0f9,$0fa,$0fb,$0fc,$0fd,$0fe,$0ff
  567.     dc.w    $0ef,$0df,$0cf,$0bf,$0af,$09f,$08f,$07f
  568.     dc.w    $06f,$05f,$04f,$03f,$02f,$01f,$00f
  569.     dc.w    $10f,$20f,$30f,$40f,$50f,$60f,$70f,$80f
  570.     dc.w    $90f,$a0f,$b0f,$c0f,$d0f,$e0f,$f0f
  571.     dc.w    $f0e,$f0d,$f0c,$f0b,$f0a,$f09,$f08,$f07
  572.     dc.w    $f06,$f05,$f04,$f03,$f02,$f01
  573.     dc.w    $f00
  574.     dc.w    $f10,$f20,$f30,$f40,$f50,$f60,$f70,$f80
  575.     dc.w    $f90,$fa0,$fb0,$fc0,$fd0,$fe0,$ff0
  576.     dc.w    $ef0,$df0,$cf0,$bf0,$af0,$9f0,$8f0,$7f0
  577.     dc.w    $6f0,$5f0,$4f0,$3f0,$2f0,$1f0,$0f0
  578.     dc.w    $0f1,$0f2,$0f3,$0f4,$0f5,$0f6,$0f7,$0f8
  579.     dc.w    $0f9,$0fa,$0fb,$0fc,$0fd,$0fe,$0ff
  580.     dc.w    $0ef,$0df,$0cf,$0bf,$0af,$09f,$08f,$07f
  581.     dc.w    $06f,$05f,$04f,$03f,$02f,$01f,$00f
  582.     dc.w    $10f,$20f,$30f,$40f,$50f,$60f,$70f,$80f
  583.     dc.w    $90f,$a0f,$b0f,$c0f,$d0f,$e0f,$f0f
  584.     dc.w    $f0e,$f0d,$f0c,$f0b,$f0a,$f09,$f08,$f07
  585.     dc.w    $f06,$f05,$f04,$f03,$f02,$f01
  586.     dc.w    $ffff
  587.     EVEN
  588. getto:    dc.l 0
  589. poo:    dc.b 0
  590. gob:    dc.b 0
  591.     even
  592.     
  593. bounce:
  594.     move.l getto,a4
  595.     move.w (a4)+,shat
  596.     addi.b #1,poo
  597.     cmpi.b #24,poo  ;number in table
  598.     beq lop
  599.     move.l a4,getto
  600.     jmp cak
  601. lop:
  602.     move.b #0,poo
  603.     move.l #grumpy,getto
  604. cak:    
  605.     rts
  606.         
  607. grumpy:
  608.     dc.w $d001,$cc01,$c801,$c401,$c001,$bd01
  609.     dc.w $ba01,$b701,$b501,$b301,$b201,$b101
  610.     dc.w $b001,$b101,$b201,$b301,$b501,$b701
  611.     dc.w $ba01,$bd01,$c001,$c401,$c801,$cc01
  612.     dc.w $d001
  613.     
  614.     
  615. SCROLLPLANE    DS.B    2500
  616. SINSCROLL:LEA    DIFFERENCE,A0        ;    VISIBLE BIT PLANE
  617. BLITREADY:BTST    #14,$DFF002        ;    CHECK FOR BUSY BLITTER
  618.     BNE.S    BLITREADY        ;    WAIT TILL BLITTER READY
  619.     MOVE.L    A0,$DFF054        ;    SOURCE ADDRESS
  620.     MOVE.L    A0,$DFF050        ;    DESTINATION ADDRESS
  621.     CLR.L    $DFF044            ;    NO FWM/LWM (SEE HARDWARE MANUAL)
  622.     CLR.L    $DFF064            ;    NO MODULO (SEE HARDWARE MANUAL)
  623.     MOVE.W    #%100000000,$DFF040    ;    ENABLE DMA CHANNEL D, NOTHING ELSE, NO MINTERMS ACTIVE. 
  624.     CLR.W    $DFF042            ;    NOTHING SET IN BLTCON1
  625.     MOVE.W    #(60*64)+21,$DFF058    ;    WINDOW SIzE = 21 WORDS WIDE 60 LINES DEEP
  626.     MOVE.L    SINPT,A3
  627.     SUBQ.L    #1,A3
  628.     MOVE.B    (A3),D0
  629.     CMP.B    #255,D0
  630.     BNE.S    NOTENDOFSINE
  631.     LEA    SINTABEND(PC),A3
  632. NOTENDOFSINE:MOVE.L    A3,SINPT
  633.     MOVEQ    #19,D0
  634.     LEA    SCROLLPLANE,A0
  635.     LEA    DIFFERENCE,A1
  636. SLOOP3:    BSR    GETSINVAL
  637. BLITREADY2:BTST    #14,$DFF002
  638.     BNE.S    BLITREADY2
  639.     MOVE.L    A0,$DFF050
  640.     MOVE.L    A2,$DFF054
  641.     MOVE.L    #$F000F000,$DFF044
  642.     MOVE.W    #40,$DFF064
  643.     MOVE.W    #40,$DFF066
  644.     MOVE.W    #%0000100111110000,$DFF040
  645.     CLR.W    $DFF042
  646.     MOVE.W    #(32*64)+1,$DFF058
  647.     BSR    GETSINVAL
  648. zONK2:    BTST    #14,$DFF002
  649.     BNE.S    zONK2
  650.     MOVE.L    A0,$DFF050
  651.     MOVE.L    A2,$DFF054
  652.     MOVE.L    A2,$DFF04C
  653.     MOVE.L    #$F000F00,$DFF044
  654.     MOVE.W    #40,$DFF064
  655.     MOVE.W    #40,$DFF066
  656.     MOVE.W    #40,$DFF062
  657.     MOVE.W    #%0000110111111100,$DFF040
  658.     CLR.W    $DFF042
  659.     MOVE.W    #(32*64)+1,$DFF058
  660.     BSR    GETSINVAL
  661. zONK3:    BTST    #14,$DFF002
  662.     BNE.S    zONK3
  663.     MOVE.L    A0,$DFF050
  664.     MOVE.L    A2,$DFF054
  665.     MOVE.L    A2,$DFF04C
  666.     MOVE.L    #$F000F0,$DFF044
  667.     MOVE.W    #40,$DFF064
  668.     MOVE.W    #40,$DFF066
  669.     MOVE.W    #40,$DFF062
  670.     MOVE.W    #%0000110111111100,$DFF040
  671.     CLR.W    $DFF042
  672.     MOVE.W    #(32*64)+1,$DFF058
  673.     BSR    GETSINVAL
  674. zONK4:    BTST    #14,$DFF002
  675.     BNE.S    zONK4
  676.     MOVE.L    A0,$DFF050
  677.     MOVE.L    A2,$DFF054
  678.     MOVE.L    A2,$DFF04C
  679.     MOVE.L    #$F000F,$DFF044
  680.     MOVE.W    #40,$DFF064
  681.     MOVE.W    #40,$DFF066
  682.     MOVE.W    #40,$DFF062
  683.     MOVE.W    #%0000110111111100,$DFF040
  684.     CLR.W    $DFF042
  685.     MOVE.W    #%100000000001,$DFF058
  686.     ADDQ.L    #2,A0
  687. LOAD    ADDQ.L    #2,A1
  688.     DBRA    D0,SLOOP3
  689.     RTS
  690. GETSINVAL:MOVEQ    #0,D1
  691.     MOVE.B    (A3)+,D1
  692.     MOVE.B    (A3),D2
  693.     CMP.B    #255,D2
  694.     BNE    OKYAR
  695.     MOVE.L    #SINTAB,A3
  696. OKYAR:    LSR.B    #1,D1
  697.     BCLR    #0,D1
  698.     MULU    #21,D1
  699.     MOVE.L    A1,A2
  700.     ADD.L    D1,A2
  701.     RTS
  702. SCROLLY:MOVE.B    PAUSE,D0
  703.     CMP.B    #0,D0
  704.     BEQ    GOPAST
  705.     SUB.B    #1,D0
  706.     MOVE.B    D0,PAUSE
  707.     BRA    GOPAST2
  708. GOPAST:    MOVE.L    #SCROLLPLANE,A0
  709.     MOVE.L    #SCROLLPLANE+2,A1
  710. BLITREADY3:BTST    #14,$DFF002
  711.     BNE.S    BLITREADY3
  712.     MOVE.L    A0,$DFF054
  713.     MOVE.L    A1,$DFF050
  714.     MOVE.L    #-1,$DFF044
  715.     CLR.L    $DFF064
  716.     MOVE.W    #%1100100111110000,$DFF040
  717.     CLR.W    $DFF042
  718.     MOVE.W    #(40*64)+26,$DFF058
  719. GOPAST2:BSR    SINSCROLL
  720.     MOVE.B    PAUSE,D0
  721.     CMP.B    #0,D0
  722.     BNE    IUO
  723.     MOVE.B    COUNTDOWN,D0
  724.     SUB.B    #1,D0
  725.     CMP.B    #0,D0
  726.     BEQ    MFC
  727.     MOVE.B    D0,COUNTDOWN
  728. IUO:    RTS
  729. COUNTDOWN:    DC.B    4,0
  730. SINPT:    DC.L    SINTABEND        
  731. SINPT2:    DC.L    SINTAB2
  732.     DC.B    255
  733. SINTAB:    DC.B    $3C,$3F,$42,$46,$49,$4C,$50,$53,$56,$59
  734.     DC.B    $5C,$5F,$61,$64,$67,$69,$6B,$6D,$6F,$71
  735.     DC.B    $72,$73,$75,$76,$76,$77,$77,$77,$77,$77
  736.     DC.B    $77,$76,$76,$75,$73,$72,$71,$6F,$6D,$6B
  737.     DC.B    $69,$67,$64,$61,$5F,$5C,$59,$56,$53,$50
  738.     DC.B    $4C,$49,$46,$42,$3F,$3C,$38,$35,$31,$2E
  739.     DC.B    $2B,$27,$24,$21,$1E,$1B,$18,$16,$13,$10
  740.     DC.B    $E,$C,$A,$8,$6,$5,$4,$2,$1,$1
  741.     DC.B    $0,$0,$0,$0,$0,$0,$1,$1,$2,$4
  742.     DC.B    $5,$6,$8,$A,$C,$E,$10,$13,$16,$18
  743.     DC.B    $1B,$1E,$21,$24,$27,$2B,$2E,$31,$35
  744. SINTABEND:    DC.B    $38,255
  745. SINTAB2:DC.B    $2D,$31,$34,$38,$3B,$3E,$41,$45,$47,$4A,$4D,$4F,$51,$53,$55,$57
  746.     DC.B    $58,$59,$59,$5A,$5A,$5A,$59,$59,$58,$57,$55,$53,$51,$4F,$4D,$4A
  747.     DC.B    $47,$45,$41,$3E,$3B,$38,$34,$31,$2D,$29,$26,$22,$1F,$1C,$19,$15
  748.     DC.B    $13,$10,$D,$B,$9,$7,$5,$3,$2,$1,$1,$0,$0,$0,$1,$1,$2,$3,$5,$7,$9
  749.     DC.B    $B,$D,$10,$13,$15,$19,$1C,$1F,$22,$26,$29,$FF
  750. PAUSE:    DC.B    0
  751. SINMODULO:    DC.B    0
  752.     EVEN
  753. MFC:    MOVE.B    #4,COUNTDOWN
  754.     CLR.W    SCROLLPLANE+40
  755.     CLR.W    SCROLLPLANE+82
  756.     MOVE.L    #SCROLLPLANE+124,A1
  757.     BSR    CHARADDRESS
  758.     MOVEQ    #15,D0
  759. zONKIN:    MOVE.W    (A0),(A1)
  760.     LEA    40(A0),A0
  761.     LEA    42(A1),A1
  762.     DBF    D0,zONKIN
  763.     RTS
  764. CHARADDRESS:
  765.     MOVE.L    MESPTR,A0
  766.     MOVEQ    #0,D0
  767.     MOVE.L    D0,D1
  768.     MOVE.L    D0,D2
  769.     MOVE.B    (A0)+,D0
  770.     CMP.B    #$0A,D0
  771.     BNE    WIzY
  772.     MOVE.B    #32,D0
  773. WIzY:    CMP.B    #255,D0
  774.     BNE    WAzY
  775.     MOVE.L    #MESSAGE,A0
  776.     MOVE.B    #32,D0
  777. WAzY:    CMP.B    #254,D0
  778.     BNE    WOzY
  779.     MOVE.B    #32,D0
  780.     MOVE.B    #$60,PAUSE
  781. WOzY:    MOVE.L    A0,MESPTR
  782.     SUB.B    #32,D0    
  783.     MOVEQ    #0,D1
  784.     DIVU    #20,D0                ;    20 CHARS ON EACH LINE
  785.     MOVE.B    D0,D1
  786.     CLR.W    D0
  787.     SWAP    D0
  788.     MOVE.L    #FONTMAP,A0
  789.     MULU    #640,D1
  790.     ADD.L    D0,D0
  791.     ADD.L    D0,A0
  792.     ADD.L    D1,A0
  793.     RTS
  794.     EVEN
  795. MESPTR:    DC.L    MESSAGE
  796. MESSAGE:    ;12345678900987654321
  797.     DC.B    '  SLIPSTREAM ARE   ',254
  798.     DC.B    '     KID VIDEO     ',254
  799.     DC.B    '        POD        ',254
  800.     DC.B    '       ANDI        ',254
  801.     DC.B    '      DIGITS       ',254
  802.     DC.B    '      KAPPA        ',254
  803.     DC.B    '      DARKHO       ',254
  804.     DC.B    '      DAMATT       ',254
  805.     DC.B    '       AX          ',254
  806.     DC.B    '      FANGS        ',254
  807.     DC.B    '      BREN         ',254
  808.     dc.b    '      MALLY        ',254
  809.     DC.B    'CALL THE ABSOLUTE ZERO ON'
  810.     DC.B    ' ENGLAND +44 0642 300501 RUNS UP TO 19200'
  811.     DC.B    ' ON LINE 24 HOURS A DAY GREETINGS GO TO '
  812.     DC.B    ' CRYSTAL SKID ROW QUARTEX MAG FIELDS' 
  813.     DC.B    ' ANARCHY MAYHEM L.S.D THE MIGHTY DRUIDS '
  814.     DC.B    ' ARCHAOS THE STEALTH MODESTY SCOOTER'
  815.     DC.B    ' IPEC ELITE D-MOB DEFJAM ANTHROX ECSTASY'
  816.     DC.B    ' SORRY IF IVE MISSED YOU BUT IM SO PISS OFF'
  817.     DC.B    'ANY WAY SEE YOU POD OF SLIPSTREAM            '
  818.     DC.B    '               WRAP                       '
  819.     
  820.     
  821.     DC.B    '        WRAP        ',254
  822.     DC.B    255
  823.     EVEN
  824. difference dcb.B    $2000,0
  825.  
  826.  
  827.  
  828.